prepare($count_sql); $count_stmt->execute($params); $total_result = $count_stmt->fetch(PDO::FETCH_ASSOC); $total_records = $total_result['total']; $total_pages = ceil($total_records / $per_page); // Get students with pagination $offset = ($page - 1) * $per_page; $sql = "SELECT * FROM students_info" . $where_clause . " ORDER BY sn DESC LIMIT :offset, :per_page"; $stmt = $DBcon->prepare($sql); foreach ($params as $key => $value) { $stmt->bindValue($key, $value); } $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->bindValue(':per_page', $per_page, PDO::PARAM_INT); $stmt->execute(); $students = $stmt->fetchAll(PDO::FETCH_ASSOC); return [ 'students' => $students, 'total_records' => $total_records, 'total_pages' => $total_pages, 'current_page' => $page ]; } catch (PDOException $e) { error_log("Get students error: " . $e->getMessage()); return ['students' => [], 'total_records' => 0, 'total_pages' => 0, 'current_page' => 1]; } } // Get classes for dropdown function getClasses() { global $DBcon; try { $sql = "SELECT classid FROM class ORDER BY classid"; $stmt = $DBcon->prepare($sql); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { error_log("Get classes error: " . $e->getMessage()); return []; } } // Get academic years for dropdown function getAcademicYears() { global $DBcon; try { $sql = "SELECT academic_year FROM calender ORDER BY academic_year DESC"; $stmt = $DBcon->prepare($sql); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { error_log("Get academic years error: " . $e->getMessage()); return []; } } // Handle delete action if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'delete') { if (!validate_csrf_token($_POST['csrf_token'])) { $message = 'Security token validation failed.'; $message_type = 'error'; } else { $id = intval($_POST['id']); try { $sql = "DELETE FROM students_info WHERE sn = :id"; $stmt = $DBcon->prepare($sql); if ($stmt->execute([':id' => $id])) { $message = 'Student deleted successfully.'; $message_type = 'success'; } else { $message = 'Failed to delete student.'; $message_type = 'error'; } } catch (PDOException $e) { error_log("Delete student error: " . $e->getMessage()); $message = 'Database error occurred.'; $message_type = 'error'; } } } // Get filter parameters $filter_class = isset($_GET['filter_class']) ? sanitize_input($_GET['filter_class']) : ''; $filter_year = isset($_GET['filter_year']) ? sanitize_input($_GET['filter_year']) : ''; $current_page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1; // Build filters array $filters = []; if (!empty($filter_class)) $filters['class_id'] = $filter_class; if (!empty($filter_year)) $filters['admin_year'] = $filter_year; // Get students data $students_data = getStudents($filters, $current_page, 25); $students = $students_data['students']; $total_records = $students_data['total_records']; $total_pages = $students_data['total_pages']; // Get dropdown data $classes = getClasses(); $academic_years = getAcademicYears(); $csrf_token = generate_csrf_token(); ?> Student Management - School Admin

Student List

Add New Student
Clear
0): ?>
# Image Full Name Registration No Class Admission Year Actions
Student Image
Edit

No students found. Try changing your filters or clear all filters. Add the first student.

1): ?>